home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.3 Development Libraries / SGI IRIX 6.3 Development Libraries.iso / dist / dist6.3 / ViewKit_dev.idb / usr / include / Vk / VkForkIO.h.z / VkForkIO.h
C/C++ Source or Header  |  1996-09-20  |  2KB  |  67 lines

  1. ////////////////////////////////////////////////////////////////////////////////
  2. ///////   Copyright 1992, Silicon Graphics, Inc.  All Rights Reserved.   ///////
  3. //                                                                            //
  4. // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;     //
  5. // the contents of this file may not be disclosed to third parties, copied    //
  6. // or duplicated in any form, in whole or in part, without the prior written  //
  7. // permission of Silicon Graphics, Inc.                                       //
  8. //                                                                            //
  9. // RESTRICTED RIGHTS LEGEND:                                                  //
  10. // Use,duplication or disclosure by the Government is subject to restrictions //
  11. // as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data     //
  12. // and Computer Software clause at DFARS 252.227-7013, and/or in similar or   //
  13. // successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -    //
  14. // rights reserved under the Copyright Laws of the United States.             //
  15. //                                                                            //
  16. ////////////////////////////////////////////////////////////////////////////////
  17. #ifndef _VK_FORK_IO_
  18. #define _VK_FORK_IO_
  19.  
  20. #include <Vk/VkTextIO.h>
  21. #include <Vk/VkProgram.h>
  22. #include <Vk/VkSubProcess.h>
  23. #include <Vk/VkInput.h>
  24.  
  25.  
  26. enum VkForkIOReason { FIO_exited, FIO_destroyed, FIO_ctrlc, FIO_ctrld };
  27.  
  28. class VkForkIO : public VkTextIO {
  29.  
  30. public:
  31.  
  32.   VkForkIO(const char *name, Widget parent, const char *prompt = NULL);
  33.   ~VkForkIO();
  34.  
  35.   void execCommand(char *cmd);
  36.  
  37.   Boolean running() { return _running; }
  38.  
  39.   void inputString(char *str);
  40.  
  41.   static const char *const exitCallback;
  42.   static const char *const inputCallback;
  43.  
  44. protected:
  45.  
  46.   void cmdOutput(VkCallbackObject*, void *, void *);
  47.  
  48.   void cmdExit(VkCallbackObject*, void *, void *);
  49.  
  50.   void killProcess();
  51.  
  52.   int readAndOutput(VkInput *input);
  53.  
  54.   virtual void doCtrlC();
  55.   virtual void doCtrlD();
  56.   virtual void doNewLine();
  57.  
  58.   Boolean _running;
  59.  
  60.   VkInput stdoutCB;
  61.   VkInput stderrCB;
  62.  
  63.   VkSubProcess process;
  64. };
  65.  
  66. #endif
  67.